package com.petdog.module.community.service;

import com.petdog.infrastructure.entity.Post;
import com.petdog.module.community.dto.PostCreateRequest;
import com.petdog.module.community.dto.PostUpdateRequest;
import com.petdog.module.community.dto.PostDetailResponse;
import com.petdog.module.community.dto.PostListResponse;

import java.util.List;
import java.util.Map;

/**
 * 帖子服务接口
 */
public interface PostService {
    
    /**
     * 创建帖子
     */
    Long createPost(PostCreateRequest request);
    
    /**
     * 更新帖子
     */
    boolean updatePost(PostUpdateRequest request);
    
    /**
     * 删除帖子
     */
    boolean deletePost(Long postId, Long userId);
    
    /**
     * 查询帖子详情
     */
    PostDetailResponse getPostDetail(Long postId);
    
    /**
     * 获取社区帖子列表
     */
    List<PostListResponse> getCommunityPosts(Map<String, Object> params);
    
    /**
     * 获取用户发布的帖子
     */
    List<PostListResponse> getUserPosts(Long userId, int page, int pageSize);
    
    /**
     * 点赞帖子
     */
    boolean likePost(Long postId, Long userId);
    
    /**
     * 取消点赞帖子
     */
    boolean unlikePost(Long postId, Long userId);
    
    /**
     * 增加帖子浏览数
     */
    void incrementPostViews(Long postId);
    
    /**
     * 查询用户是否已点赞帖子
     */
    boolean isUserLikedPost(Long postId, Long userId);
}